package cn.initcap.service;

import cn.initcap.entity.OrderInfo;
import cn.initcap.entity.SeckillOrder;
import cn.initcap.entity.SeckillUser;
import cn.initcap.vo.GoodsVo;

/**
 * @author initcap
 * @date Created in 2018/8/10 PM4:48.
 */
public interface OrderService {

    /**
     * 查看用户是否秒杀过这个商品
     *
     * @param userId  用户编号
     * @param goodsId 商品编号
     * @return 秒杀产品实体类
     */
    SeckillOrder getMiaoshaOrderByUserIdGoodsId(long userId, long goodsId);

    /**
     * 查看用户是否秒杀过这个商品（慢）
     *
     * @param userId  用户编号
     * @param goodsId 商品编号
     * @return 秒杀产品实体类
     */
    SeckillOrder getSeckillOrderByUserIdGoodsId(long userId, long goodsId);

    /**
     * 根据订单编号获取订单
     *
     * @param orderId 订单编号
     * @return 订单实体类
     */
    OrderInfo getOrderById(long orderId);

    /**
     * 创建订单
     *
     * @param user  用户实体类
     * @param goods 商品展示实体类
     * @return 订单详情
     */
    OrderInfo createOrder(SeckillUser user, GoodsVo goods);

    /**
     * 删除订单
     */
    void deleteOrders();
}
